/*********************************************************************
	\file :           os_sw_layers\bios\services\scheduler\SchM_Types.h
	\brief:           Scheduler Module type definitions.
	\author:          Manuel Sandoval
	\version:         1.0
	\date:            Sat, 01, March 2014
*********************************************************************/

#ifndef SchM_Types_H
#define SchM_Types_H

/******************************* Includes**********************************/

#include "typedef_OS.h"
#include "Mcu.h"

/******************************* Defines **********************************/

#define CNF_NONE_MASK             0           /*!< Task 1 Mask. */
#define CNF_NONE_OFFSET           0           /*!< Task 1 Mask. */


#define CNF_TASKS_1_MS_OFFSET 			0			/*!< Task 1 Offset. */
#define CNF_TASKS_4_MS_OFFSET 			1			/*!< Task 2 Offset. */
#define CNF_TASKS_8_MS_OFFSET 			3			/*!< Task 3 Offset. */
#define CNF_TASKS_16_MS_OFFSET 			7			/*!< Task 4 Offset. */
#define CNF_TASKS_32_MS_OFFSET 			15			/*!< Task 5 Offset. */
#define CNF_TASKS_64_MS_OFFSET 			31			/*!< Task 6 Offset. */



#define CNF_TASKS_1_MS_MASK             1           /*!< Task 1 Mask. */
#define CNF_TASKS_4_MS_MASK             3           /*!< Task 2 Mask. */
#define CNF_TASKS_8_MS_MASK             7           /*!< Task 3 Mask. */
#define CNF_TASKS_16_MS_MASK            15          /*!< Task 4 Mask. */
#define CNF_TASKS_32_MS_MASK            31          /*!< Task 5 Mask. */
#define CNF_TASKS_64_MS_MASK            63          /*!< Task 6 Mask. */


/******************************* Enumerations******************************/

/* Task Scheduler Tasks IDs definitions */
typedef enum SchM_TaskIDType
{
    NONE = 0,
    TASKS_1_MS,
    TASKS_4_MS,
    TASKS_8_MS,
    TASKS_16_MS,
    TASKS_32_MS,
    TASKS_64_MS,
    TASK_MAX_NUM,
}SchM_TaskIDType;


typedef enum SchM_TaskStateType
{
    SUSPENDED = 0,
    READY,
    RUNNING
}SchM_TaskStateType;


/******************************* Structures *******************************/


/******************************* Global Variables **********************************/


/******************************* Functions ********************************/


/** @} *//* End of Scheduler Types Group */

#endif /* SchM_Types_H */

/*********************************************************************
	File	: os_sw_layers\bios\mcu\Mcu_Cfg.h 
*********************************************************************/
